1. Field of the Invention
The present invention relates to computer systems. More particularly, the present invention relates to prefetching of files associated with virtualization applications.
2. Description of Related Art
Microsoft Windows Vista utilizes memory prioritization when managing allocation of system memory, i.e., physical memory. Lower priority system memory is re-used before higher priority system memory when system memory resources are under memory pressure. Additionally Vista includes a memory performance enhancement feature termed SuperFetch. SuperFetch tracks a user's interactions to determine which pages the user uses most frequently. As a user interacts with the computer system, SuperFetch tracks various information, such as foreground applications, time of day, day of week, and if the user is interacting with the computer system e.g., mouse and keyboard, or if the computer system is running maintenance tasks.
When the computer system has free system memory, SuperFetch predictively preloads, e.g., prefetches, the more frequently used pages into low priority system memory so these pages can be moved directly to an application's working set instead of being pulled from physical memory storage, e.g., from disk. This allows the pages to load much faster than they would if the pages had to be pulled from physical memory storage.
Typically files associated with application virtualization technologies, such as device filter drivers which redirect file operations, are not utilized in the SuperFetch scheme. These virtualization technologies typically utilize virtualization layers which can be activated or deactivated, also termed created and removed, respectively. When SuperFetch performs its predictive preloading, the virtualization layers utilized in the virtualization may not be activated, e.g., turned on. Accordingly, SuperFetch cannot find the files associated with the virtualization layer to predictively preload. Consequently, the user does not receive the performance improvement provided by SuperFetch's preloading when launching applications from within the virtualization layer.